class Product(object):
    # 类属性
    num = 0

    def __init__(self, name, stock):
        # 实例属性
        self.name = name
        self.stock = stock  # 库存
        # 假设每添加一个产品时,num加1
        Product.num = Product.num + 1

    # 实例方法
    def sell(self, num):
        print('出售产品:%s,当前库存:%s,出售个数:%s' % (self.name, self.stock, num))
        self.stock = self.stock - num

    # 类方法
    @classmethod
    def print_num(cls):
        print('当前拥有的商品种类数量是%s' % cls.num)

    # 静态方法
    @staticmethod
    def check_product(product, sell_num):
        # 检查产品的库存是否大于出售的库存
        if product.stock < sell_num:
            raise Exception('库存不足')
        else:
            print('库存充足,请放心购买')


p = Product('苹果', 10)
print(p.__dict__)

# 定义卖出数量
sell_num = 20

# 调用静态方法
Product.check_product(p, sell_num)

# 调用实例方法
p.sell(sell_num)
print(p.__dict__)
